package switchviz.core;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.io.File;

import javax.swing.ImageIcon;

public class ResourceManager 
{
	private static final String ACTION_SAVE = "save";
	private static final String ACTION_NEW = "new";
	private static final String ACTION_REFRESH = "reload Data";
	private static final String ACTION_ADDITEM = "add Node";
	private static final String ACTION_ADDGAUGE = "add Gauge";
	private static final String ACTION_COPYGAUGE = "copy Gauge";
	private static final String ACTION_REMOVEGAUGE = "remove Gauge";
	private static final String ACTION_REMOVEITEM = "remove Node"; 
	private static final String ACTION_REMOVESIGNAL = "remove Signal";
	private static final String ACTION_ADDSIGNAL = "add Signal";
	private static final String ACTION_ADDSWICH = "add Switch";
	private static final String ACTION_REMOVESWICH = "remove Switch";
	private static final String ACTION_APPLY = "apply";
	private static final String ACTION_CHANGE = "change";
	private static final String ACTION_TEST = "test";
	private static final String ACTION_GETDATA = "getdata";
	private static final String ACTION_TRANSFER = "transfer Nodes";
	private static final String ACTION_SELECT = "select";
	private static final String ACTION_DELETE = "delete";
	private static final String ACTION_DELETENODE = "delete Node";
	private static final String ACTION_DELETERECORD = "delete Record";
	private static final String ACTION_COPY = "copy";
	private static final String ACTION_SAVEVIEW = "save View";
	private static final String ACTION_SAVEVIEWAS = "save View As ...";
	private static final String ACTION_CANCEL = "cancel";
	private static final String ACTION_START = "start";
	private static final String ACTION_STOP = "stop";
	private static final String ACTION_PAUSE = "pause";
	private static final String ACTION_FORWARD = "vorward";
	private static final String ACTION_BACKWARD = "backward";
	private static final String ACTION_FASTFORWARD = "fastvorward";
	private static final String ACTION_FASTBACKWARD = "fastbackward";
	
	private static ImageIcon IMAGEICON_SAVE = new ImageIcon("./images/icons/document-save.png");
	private static ImageIcon IMAGEICON_NEW = new ImageIcon("./images/icons/document-new.png");
	private static ImageIcon IMAGEICON_RELOAD = new ImageIcon("./images/icons/view-refresh.png");
	private static ImageIcon IMAGEICON_ADDITEM = new ImageIcon("./images/icons/list-add.png");
	private static ImageIcon IMAGEICON_REMOVEITEM = new ImageIcon("./images/icons/list-remove.png");
	private static ImageIcon IMAGEICON_TRANSFER = new ImageIcon("./images/icons/go-next.png");
	private static ImageIcon IMAGEICON_DELETE = new ImageIcon("./images/icons/edit-delete.png");
	private static ImageIcon IMAGEICON_COPY = new ImageIcon("./images/icons/edit-copy.png");
	private static ImageIcon IMAGEICON_NODE = new ImageIcon("./images/icons/node.png");
	private static ImageIcon IMAGEICON_SCENARIO = new ImageIcon("./images/icons/scenario.png");
	private static ImageIcon IMAGEICON_RECORD = new ImageIcon("./images/icons/record.png");
	private static ImageIcon IMAGEICON_SWITCH = new ImageIcon("./images/icons/switch.png");
	private static ImageIcon IMAGEICON_GAUGE = new ImageIcon("./images/icons/gauge.png");
	private static ImageIcon IMAGEICON_ALIAS = new ImageIcon("./images/icons/alias.png");
	private static ImageIcon IMAGEICON_STATUS_SUCCESS = new ImageIcon("./images/icons/tick.png");
	private static ImageIcon IMAGEICON_STATUS_PROCESS = new ImageIcon("./images/icons/burn.png");
	private static ImageIcon IMAGEICON_STATUS_ERROR = new ImageIcon("./images/icons/error.png");
	private static ImageIcon IMAGEICON_STATUS_WARNING = new ImageIcon("./images/icons/warning.png");
	private static ImageIcon IMAGEICON_BIOHAZARD = new ImageIcon("./images/icons/biohazard.png");
	private static ImageIcon IMAGEICON_START = new ImageIcon("./images/icons/start.png");
	private static ImageIcon IMAGEICON_STOP = new ImageIcon("./images/icons/stop.png");
	private static ImageIcon IMAGEICON_PAUSE = new ImageIcon("./images/icons/pause.png");
	private static ImageIcon IMAGEICON_FORWARD = new ImageIcon("./images/icons/forward.png");
	private static ImageIcon IMAGEICON_BACKWARD = new ImageIcon("./images/icons/backward.png");
	private static ImageIcon IMAGEICON_FASTFORWARD = new ImageIcon("./images/icons/fastforward.png");
	private static ImageIcon IMAGEICON_FASTBACKWARD = new ImageIcon("./images/icons/fastbackward.png");
	private static ImageIcon IMAGEICON_SIGNAL = new ImageIcon("./images/icons/signal.png");
	private static ImageIcon IMAGEICON_SV = new ImageIcon("./images/icons/sv.png");
	private static ImageIcon IMAGEICON_VIEW = new ImageIcon("./images/icons/graphic.png");
	private static ImageIcon IMAGEICON_LEGEND = new ImageIcon("./images/icons/legend.png");
	
	private static File SWITCHCONFIGURATIONFILE = new File ("config/switch.xml");
	private static File MIBCONFIGURATIONFILE = new File ("config/mib.xml");
	private static File ALIASCONFIGURATIONFILE = new File ("config/alias.xml");
	private static File VIEWNEWFILE = new File ("config/view/newview.xml");
	private static File VIEWFOLDER = new File ("data/view/");
	private static File RECORDFOLDER = new File ("data/record/");
	private static File USERMANUAL = new File("doc/manual/UserManual.pdf");
	
	private static final int CONFIGURATIONLABELWIDTH = 120;
	private static final int CONFIGURATIONLABELHEIGHT = 20;
	private static final int COMPONENTHGAP = 3;
	private static final int COMPONENTVGAP = 3;

	private static ResourceManager _instance = null;
	
	private ResourceManager()
	{
		
	}
	
	public static ResourceManager getInstance()
	{
		if (_instance == null)
			_instance = new ResourceManager();
		
		return _instance;
	}
	
	public ImageIcon getImageIconSave()
	{
		return IMAGEICON_SAVE;
	}
	
	public ImageIcon getImageIconView()
	{
		return IMAGEICON_VIEW;
	}
	
	public ImageIcon getImageIconNew()
	{
		return IMAGEICON_NEW;
	}
	
	public ImageIcon getImageIconReload()
	{
		return IMAGEICON_RELOAD;
	}
	
	public ImageIcon getImageIconSV()
	{
		return IMAGEICON_SV;
	}
	
	public ImageIcon getImageIconBioHazard()
	{
		return IMAGEICON_BIOHAZARD;
	}
	
	public ImageIcon getImageIconRecord()
	{
		return IMAGEICON_RECORD;
	}
	
	public ImageIcon getImageIconLegend()
	{
		return IMAGEICON_LEGEND;
	}
	
	public ImageIcon getImageIconScenario()
	{
		return IMAGEICON_SCENARIO;
	}
	
	public ImageIcon getImageIconStatusError()
	{
		return IMAGEICON_STATUS_ERROR;
	}
	
	public ImageIcon getImageIconStatusWarning()
	{
		return IMAGEICON_STATUS_WARNING;
	}
	
	public ImageIcon getImageIconSignal()
	{
		return IMAGEICON_SIGNAL;
	}
	
	public ImageIcon getImageIconStatusSuccess()
	{
		return IMAGEICON_STATUS_SUCCESS;
	}
	
	public ImageIcon getImageIconStatusProcess()
	{
		return IMAGEICON_STATUS_PROCESS;
	}
	
	public ImageIcon getImageIconAddItem()
	{
		return IMAGEICON_ADDITEM;
	}
	
	public ImageIcon getImageIconRemoveItem()
	{
		return IMAGEICON_REMOVEITEM;
	}

	public ImageIcon getImageIconMIBNode()
	{
		return IMAGEICON_NODE;
	}
	
	public ImageIcon getImageIconTransfer()
	{
		return IMAGEICON_TRANSFER;
	}

	public ImageIcon getImageIconDelete()
	{
		return IMAGEICON_DELETE;
	}
	
	public ImageIcon getImageIconCopy()
	{
		return IMAGEICON_COPY;
	}
	
	public ImageIcon getImageIconSwitch()
	{
		return IMAGEICON_SWITCH;
	}

	public ImageIcon getImageIconAlias()
	{
		return IMAGEICON_ALIAS;
	}
	
	public ImageIcon getImageIconGauge()
	{
		return IMAGEICON_GAUGE;
	}
	
	public ImageIcon getImageIconStart() 
	{
		return IMAGEICON_START;
	}

	public ImageIcon getImageIconStop()
	{
		return IMAGEICON_STOP;
	}

	public ImageIcon getImageIconPause()
	{
		return IMAGEICON_PAUSE;
	}

	public ImageIcon getImageIconForward()
	{
		return IMAGEICON_FORWARD;
	}

	public ImageIcon getImageIconBackward()
	{
		return IMAGEICON_BACKWARD;
	}
	
	public ImageIcon getImageIconFastForward()
	{
		return IMAGEICON_FASTFORWARD;
	}

	public ImageIcon getImageIconFastBackward()
	{
		return IMAGEICON_FASTBACKWARD;
	}
	
	public File getSwitchConfigurationFile()
	{
		return SWITCHCONFIGURATIONFILE;
	}
	
	public File getMIBConfigurationFile()
	{
		return MIBCONFIGURATIONFILE;
	}

	public File getAliasConfigurationFile()
	{
		return ALIASCONFIGURATIONFILE;
	}
	
	public File getNewViewConfigurationFile()
	{
		return VIEWNEWFILE;
	}
	
	public File getUserManualFile()
	{
		return USERMANUAL;
	}
	
	public File getViewFolder()
	{
		return VIEWFOLDER;
	}

	public File getRecordFolder()
	{
		return RECORDFOLDER;
	}
	
	public String getActionSave() 
	{
		return ACTION_SAVE;
	}
	
	public String getActionDeleteNode()
	{
		return ACTION_DELETENODE;
	}
	
	public String getActionCancel()
	{
		return ACTION_CANCEL;
	}
	
	public String getActionNew() 
	{
		return ACTION_NEW;
	}

	public String getActionRefresh() 
	{
		return ACTION_REFRESH;
	}

	public String getActionAddItem() 
	{
		return ACTION_ADDITEM;
	}
	
	public String getActionSaveView()
	{
		return ACTION_SAVEVIEW;
	}
	
	public String getActionSaveViewAs()
	{
		return ACTION_SAVEVIEWAS;
	}
	
	public String getActionAddGauge()
	{
		return ACTION_ADDGAUGE;
	}
	
	public String getActionAddSignal()
	{
		return ACTION_ADDSIGNAL;
	}
	
	public String getActionRemoveSignal()
	{
		return ACTION_REMOVESIGNAL;
	}
	
	public String getActionCopyGauge()
	{
		return ACTION_COPYGAUGE;
	}

	public String getActionRemoveItem() 
	{
		return ACTION_REMOVEITEM;
	}
	
	public String getActionRemoveGauge()
	{
		return ACTION_REMOVEGAUGE;
	}
	
	public String getActionRemoveRecord()
	{
		return ACTION_DELETERECORD;
	}

	public String getActionChange() 
	{
		return ACTION_CHANGE;
	}

	public String getActionTest() 
	{
		return ACTION_TEST;
	}

	public String getActionGetData()
	{
		return ACTION_GETDATA;
	}

	public String getActionTransfer() 
	{
		return ACTION_TRANSFER;
	}
	
	public String getActionApply() 
	{
		return ACTION_APPLY;
	}
	
	public String getActionSelect()
	{
		return ACTION_SELECT;
	}
	
	public String getActionDelete()
	{
		return ACTION_DELETE;
	}
	
	public String getActionCopy()
	{
		return ACTION_COPY;
	}
	
	public String getActionStart() 
	{
		return ACTION_START;
	}

	public String getActionStop() 
	{
		return ACTION_STOP;
	}

	public String getActionPause() 
	{
		return ACTION_PAUSE;
	}

	public String getActionForward() 
	{
		return ACTION_FORWARD;
	}

	public String getActionBackward() 
	{
		return ACTION_BACKWARD;
	}
	
	public String getActionFastForward() 
	{
		return ACTION_FASTFORWARD;
	}

	public String getActionFastBackward() 
	{
		return ACTION_FASTBACKWARD;
	}
	
	public String getActionAddSwitch() 
	{
		return ACTION_ADDSWICH;
	}

	public String getActionRemoveSwitch() 
	{
		return ACTION_REMOVESWICH;
	}

	public Dimension getConfigurationLabelDimension()
	{
		return new Dimension(CONFIGURATIONLABELWIDTH, CONFIGURATIONLABELHEIGHT);
	}
	
	public Dimension getComponentGap()
	{
		return new Dimension(COMPONENTHGAP, COMPONENTVGAP);
	}
	
	public BorderLayout getBorderLayout()
	{
		return new BorderLayout(COMPONENTHGAP, COMPONENTVGAP);
	}
}
